Interne CMD-Kommandos

Diese Sammlung beansprucht keinerlei Vollständigkeit, weder im Moment noch künftig. Es geht mir nur darum, einige besonders interessante Aspekte (die ich selbst ständig vergesse) an dieser Stelle zu sammeln.

Initialisierungsbatch
Man spart sich erheblich Mühe und Frust am CMD-Prompt, wenn man diesen durch eine Initialisierungsbatch (Datei mit der Endung CMD oder BAT) standardisiert. Das ist recht mühelos möglich, weil die CMD beim Start eine Batch automatisch lädt, die im Registry-Schlüssel „HKEY_CURRENT_USER\Software\Microsoft\Command Processor“ in der Zeichenfolge „Autorun“ mit vollem Pfadnamen eingetragen ist.

Typischer Inhalt der Initialisierungsdatei sind dann Farbdefinition (Color), Prompt, Titel (title) und Doskey-Definitionen, also Kommandoabkürzungen wie etwa „doskey d=pushd „%userprofile%\desktop“ oder „doskey x=explorer.exe .“.
Eine einfache Init.cmd, die sich selbst ins Benutzerprofil kopiert und in die Registry einträgt, können Sie hier herunterladen. Einfach Zip entpacken, Init.cmd starten mit Doppelklick – erledigt. Die enthaltenen Befehle sind natürlich Geschmackssache. Wenn Sie am Prompt „init“ eingeben, erhalten Sie die Initialisierungsbatch im Editor und können Sie nach eigenen Wünschen verändern. Ich beschreibe hier nur das – ausbaufähige – Prinzip, da ich selbst den alternativen Kommandointerpreter 4NT klar bevorzuge.

DOSKEY
Der antiquierte Name Doskey steht für Alias-Abkürzungen wie unter Unix.
Wenn das Alias „doskey x=explorer.exe .“ definiert wurde, startet „x“ ein Explorer-Fenster mit dem aktuellen Verzeichnis. Um einem Alias einen Parameter übergeben zu können, verwenden Sie „$*“:

doskey n=notepad.exe $*

Der Befehl „n datei.txt“ würde nun die angegebene Datei in Notepad laden.
Mehrere Befehle lassen sich mit „$T“ verketten:

doskey xkill=taskkill.exe /f /im explorer.exe $T pause $T explorer.exe

Dieses Doskey-Alias

doskey clip=$* $T $*^>%temp%\temp.txt $T notepad.exe %temp%\temp.txt

zeigt, dass man auch Dateiumleitungen nutzen kann. Dazu muss aber das Umleitungszeichen „>“ mit „^“ maskiert werden. Das Alias würde etwa nach „dir /s /b“ diesen Befehl ausführen und die Ausgabe in Notepad laden.

ECHO
Mit Batch-Code temporäre Dateien zu schreiben ist recht lästig: Typischerweise müssen Sie Textzeile für Textzeile mit ‚Echo‘ und Umleitungszeichen in die Datei setzen:
echo Bla > Datei.txt
echo Bla >>Datei.txt
echo Bla >>Datei.txt
echo Bla >>Datei.txt

Das ist nicht nur mühsam, sondern auch fehleranfällig.
Folgende Syntax-Variante macht die Sache viel bequemer:

(echo Bla
echo Bla
echo Bla
echo Bla
)>Datei.txt

Die Ausgabedatei müssen Sie hier nur ein einziges Mal am Ende angeben. Die Unterscheidung der Umleitungszeichen zwischen „>“ (Erstellen der neuen Datei) und „>>“ (Anhängen an bestehende Datei) wird ebenfalls obsolet.